package com.yvon.maple.service.msg.core.common.enums;

import com.baomidou.mybatisplus.annotation.EnumValue;
import com.fasterxml.jackson.annotation.JsonValue;
import lombok.AllArgsConstructor;
import lombok.Getter;
import lombok.ToString;

/**
 * 模板枚举信息
 *
 * @author : Yvon
 * @since : 2021-12-22
 */
@Getter
@ToString
@AllArgsConstructor
public enum TemplateType {

    OPERATION(10, "运营类的模板", "operation"),
    TECHNOLOGY(20, "技术类的模板", "technology"),
    ;

    private final Integer code;

    private final String description;

    /**
     * 英文标识
     */
    @EnumValue
    private final String codeEn;

    @JsonValue
    public String getCodeEn() {
        return codeEn;
    }

    /**
     * 通过code获取enum
     * @param code
     * @return
     */
    public static TemplateType getEnumByCode(Integer code) {
        TemplateType[] values = values();
        for (TemplateType value : values) {
            if (value.getCode().equals(code)) {
                return value;
            }
        }
        return null;
    }


    /**
     * 通过codeEn获取enum
     * @param codeEn
     * @return
     */
    public static TemplateType getEnumByCodeEn(String codeEn) {
        TemplateType[] values = values();
        for (TemplateType value : values) {
            if (value.getCodeEn().equals(codeEn)) {
                return value;
            }
        }
        return null;
    }

}
